package com.gupao.pattern.singleton.Lazy;


/**
 *
 * 单例模式之懒汉式
 *
 *
 */
public class Lasy {

    private Lasy() {}


    private static Lasy lazy = null;

    public static Lasy getInstance () {

        /**
         *
         * ① 调用方法之前，先判断
         *
         * ② 如果没有初始化，将其进行初始化，并且赋值
         *
         * ③ 将实例缓存好
         */

        if (lazy == null ){
            //  这里是不安全的，入股并发的，两个线程都有可能进入
            lazy = new Lasy();
        }

        //  如果已经初始化，直接返回之前已经保存好的结果

        return  lazy;

    }
}
